package com.fy.fyspace.service;

import com.fy.fyspace.model.entity.HotnessRankingCache;
import com.fy.fyspace.model.entity.PictureHotness;
import com.fy.fyspace.model.vo.hotness.HotnessRankingVO;

import java.util.List;

/**
 * 热度排行榜缓存Service接口
 * 设计模式：服务层接口模式
 * 作用：定义热度排行榜缓存相关的业务操作接口
 */
public interface HotnessRankingCacheService {
    
    /**
     * 更新排行榜缓存
     * 
     * @param pictureHotness 图片热度数据
     * @return 是否成功
     */
    boolean updateRankingCache(PictureHotness pictureHotness);
    
    /**
     * 批量更新排行榜缓存
     * 
     * @param pictureHotnessList 图片热度数据列表
     * @return 成功更新的数量
     */
    int batchUpdateRankingCache(List<PictureHotness> pictureHotnessList);
    
    /**
     * 重新生成排行榜缓存
     * 
     * @param rankType 排行类型
     * @return 是否成功
     */
    boolean regenerateRankingCache(String rankType);
    
    /**
     * 获取排行榜数据
     * 
     * @param rankType 排行类型
     * @param limit 限制数量
     * @return 排行榜数据列表
     */
    List<HotnessRankingVO> getRankingList(String rankType, Integer limit);
    
    /**
     * 获取排行榜缓存数据
     * 
     * @param rankType 排行类型
     * @param limit 限制数量
     * @return 缓存数据列表
     */
    List<HotnessRankingCache> getRankingCache(String rankType, Integer limit);
    
    /**
     * 清除排行榜缓存
     * 
     * @param rankType 排行类型
     * @return 是否成功
     */
    boolean clearRankingCache(String rankType);
    
    /**
     * 清除所有排行榜缓存
     * 
     * @return 是否成功
     */
    boolean clearAllRankingCache();
} 